package com.guaoran.source.mybatis.v2.plugin;

/**
 * @author : 孤傲然
 * @Description :
 * @date :2018/5/27 11:03
 */
public class PluginDescription {
    /**
     1.项目启动时，Configuration加载plugin，
     2.Executor创建时，进行代理，执行InterceptorChain.pluginAll方法
        1.pluginAll()方法会遍历plugin的实现类，
        2.然后进行代理Proxy.newProxyInstance(ClassLoader loader,Class<?>[] interfaces,InvocationHandler h)
            第一个参数表示是要代理对象的classLoader，用来指明生成代理对象使用哪个类装载器
            第二个参数表示是要代理对象的interface的class[]，用来指明生成哪个对象的代理对象，通过接口指定
            第三个参数表示是要执行什么事情，用来指明产生的这个代理对象要做什么事情
                首先要实现InvocationHandler接口，并重写invoke()方法，而且该实现类必须包含代理类作为属性
     */
}
